{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Distance between bitstrings\n",
    "\n",
    "Here we will draw the histogram of the distance between two random bitstrings."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sdm as sdmlib\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import matplotlib.mlab as mlab\n",
    "#%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "distances = []\n",
    "for i in xrange(10000):\n",
    "    b1 = sdmlib.Bitstring.init_random(1000)\n",
    "    b2 = sdmlib.Bitstring.init_random(1000)\n",
    "    distances.append(b1.distance_to(b2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "mu = 500\n",
    "sigma = (1000**(0.5))/2.0\n",
    "x = np.linspace(0, 1000, 1000)\n",
    "y = mlab.normpdf(x, mu, sigma)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAD8CAYAAACLrvgBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAG+VJREFUeJzt3XuQXOWd3vHvMxfNCAkkEAMWCEVykJMVEHsXmeDaZS9mwWLLa1G1UCuKGCqhVkmtKa/XSaWgUsYJZaeKSspkKRNnWYMXk3iBYLPIRoYsF5NasmANFwsEaBkErEYGJITulxnN6Jc/zts9rVbPzOme7rmceT5VXXP67bdPn9M+6PF7OW8rIjAzM8ujbaoPwMzMZg6HhpmZ5ebQMDOz3BwaZmaWm0PDzMxyc2iYmVluDg0zM8vNoWFmZrk5NMzMLLeOqT6Aepx++umxbNmyqT4MM7MZ5YUXXvgwInqasa8ZFRrLli2jt7d3qg/DzGxGkfRus/bl7ikzM8vNoWFmZrk5NMzMLDeHhpmZ5ebQMDOz3BwaZmaWm0PDzMxyc2iYmVluDg0zM8vNoWFmZrk5NMzMLDeHhpmZ5ebQMDOz3BwaZmaWm0PDzMxyc2iYmVluDg0zM8vNoWFmZrk5NMzMLDeHhpmZ5ebQMDOz3HKFhqTVkrZI6pN0U43XuyQ9kF5/XtKyVH6ZpBckvZL+frbiPT9L+3w5Pc5o1kmZmVlrjBsaktqBO4ErgJXANZJWVlW7AdgdEecCtwO3pfIPgd+PiAuA64H7qt53bUR8Kj12TOA8zKbG0aNwxRXwyU/Ce+9N9dGYtVyelsZFQF9EbI2IQeB+YE1VnTXAvWn7IeBSSYqIlyLil6l8MzBXUlczDtxsWnj0UXjsMdi0Ce68c6qPxqzl8oTG2cC2iuf9qaxmnYgYAvYCi6rq/AHwYkQMVJR9L3VNfU2S6jpys+ng7/5uZPuZZ6buOMwmyaQMhEs6j6zL6l9XFF+buq0uSY8vjvLedZJ6JfXu3Lmz9QdrVo9XXhnZfvFFiJi6YzGbBHlCYztwTsXzJamsZh1JHcACYFd6vgR4GLguIt4qvSEitqe/+4EfkHWDnSAi7oqIVRGxqqenJ885mU2eytA4dAj8f2ys4PKExkZghaTlkuYAa4H1VXXWkw10A1wFPBURIWkh8ChwU0Q8W6osqUPS6Wm7E/g88OrETsVsku3bB/390N3Na2csz8reeWdKD8ms1cYNjTRGcSPwOPA68GBEbJZ0q6QvpGp3A4sk9QFfBUrTcm8EzgVuqZpa2wU8LmkT8DJZS+UvmnliZi3X35/9XbqUdxcuzrbffnvqjsdsEnTkqRQRG4ANVWW3VGwfAa6u8b5vAN8YZbcX5j9Ms2moNMX2rLPoP7gw23ZLwwouV2iYWQ2/TLPJzzqLbTtOzrYdGlZwDg2zRpVCY/Fidh7szLY/+GDqjsdsEnjtKbNGVbQ0ds1L3VM7vLCBFZtDw6xRFWMau+YuyLY95dYKzt1TZo16//3s78c+xq556aY+tzSs4NzSMGvURx8BsPr7r7K3ez5DaoM9e2BwcIoPzKx1HBpmjdq9G4A93ScTamP3Sadk5R9+OIUHZdZaDg2zRqWWxt7u+QAj4xruorICc2iYNeLwYThyhIH2Dg53Zqv9f3SSB8Ot+BwaZo1IXVN7u0+GtKr/ntTiYM+eqToqs5ZzaJg1oqprCmCfQ8NmAYeGWSMqBsFL9nedlG04NKzAHBpmjSi3NOaVi/Z1pW2HhhWYQ8OsEaUxjbkjLY1y99TevVNxRGaTwqFh1ohSS6OrYkzDLQ2bBRwaZo0ojWkc19JwaFjxOTTMGpFaGnu63dKw2cWhYdaIGlNu9zs0bBZwaJg1ovLmvqTcPeWBcCswh4ZZI1IwlO/NAPZ1+eY+Kz6HhlkjDhwA4OCcueWig3O6GVZb9trQ0FQdmVlLOTTMGpFC40BFaITaRloe7qKygnJomDVi/34ADlWEBngGlRWfQ8OsEaXuqc7u44rLM6jc0rCCcmiY1evoURgYgLY2BjrmHPdSeQZVml1lVjQODbN6HTwIwL7OueXf0ig5MCeNaaTuK7OicWiY1SsFQnXXFFQMjDs0rKAcGmb1SuMZ1YPgWVkKEoeGFZRDw6xeNabbll8qdU+lOmZFkys0JK2WtEVSn6SbarzeJemB9Przkpal8sskvSDplfT3sxXvuTCV90m6Q6rqHDabrsrTbU/snjro7ikruHFDQ1I7cCdwBbASuEbSyqpqNwC7I+Jc4HbgtlT+IfD7EXEBcD1wX8V7vgP8EbAiPVZP4DzMJs8o022PK3NoWEHlaWlcBPRFxNaIGATuB9ZU1VkD3Ju2HwIulaSIeCkifpnKNwNzU6tkMXBKRDwXEQF8H7hywmdjNhnGGNMotzTcPWUFlSc0zga2VTzvT2U160TEELAXWFRV5w+AFyNiINXvH2efZtPTGGMa7p6youuYjA+RdB5Zl9XlDbx3HbAOYOnSpU0+MrMGlMY0anVPOTSs4PK0NLYD51Q8X5LKataR1AEsAHal50uAh4HrIuKtivpLxtknABFxV0SsiohVPT09OQ7XrMVqrHBb4tCwossTGhuBFZKWS5oDrAXWV9VZTzbQDXAV8FREhKSFwKPATRHxbKlyRLwH7JN0cZo1dR3wyATPxWxyjBEaBzymYQU3bmikMYobgceB14EHI2KzpFslfSFVuxtYJKkP+CpQmpZ7I3AucIukl9PjjPTaHwPfBfqAt4CfNuukzFpqlBVujytzS8MKKteYRkRsADZUld1SsX0EuLrG+74BfGOUffYC59dzsGbTwhhTbr2MiBWd7wg3q1d5yu0YA+HunrKCcmiY1as85fakE1463NmVbRw6BMPDk3lUZpPCoWFWrzGm3IbaPBhuhebQMKtXefbUiaGRlTs0rLgcGmb1KofGid1T4PWnrNgcGmb1Kv0I03gtDYeGFZBDw6xepdlTnSfepwHunrJic2iY1WNwEI4e5WhbO4PttW9zckvDisyhYVaPyiVERvndMIeGFZlDw6wepfGMUbqmwHeFW7E5NMzqMcbd4CXl+zc8pmEF5NAwq8cYK9yWlKfiuqVhBeTQMKvHONNtwd1TVmwODbN6jDPdFiq6rhwaVkAODbN6jLOECFS0NA4enIwjMptUDg2zeuQY0zjkm/uswBwaZvXIMeX2oGdPWYE5NMzqkWfKrQfCrcAcGmb1KP8Ak1saNjs5NMzqUfoBJo9p2Czl0DCrR2kgvMav9pWrODSswBwaZvUY5weYoGK848ABiJiMozKbNA4Ns3rkuE/jaHsng20dMDSULaVuViAODbN6lMY0xuiegqrWhlmBODTM6pHj5j6ouI/DoWEF49Awq0fO0HBLw4rKoWFWj/Iqt+O0NBwaVlAODbO8Ihjal3NMw91TVlAODbO8BgboiGMMtHcy1N4xZlW3NKyoHBpmeeUcz4CKlobXn7KCyRUaklZL2iKpT9JNNV7vkvRAev15SctS+SJJT0s6IOnbVe/5Wdrny+lxRjNOyKxlck63Bbc0rLjGbmMDktqBO4HLgH5go6T1EfFaRbUbgN0Rca6ktcBtwB8CR4CvAeenR7VrI6J3gudgNjly3NhXcsiLFlpB5WlpXAT0RcTWiBgE7gfWVNVZA9ybth8CLpWkiDgYEX9LFh5mM1sd3VPlZUYcGlYweULjbGBbxfP+VFazTkQMAXuBRTn2/b3UNfU1SapVQdI6Sb2Senfu3Jljl2YtkuMHmErcPWVFNZUD4ddGxAXAJenxxVqVIuKuiFgVEat6enom9QDNjpPjB5hKvDy6FVWe0NgOnFPxfEkqq1lHUgewANg11k4jYnv6ux/4AVk3mNn0leMHmEr8Q0xWVHlCYyOwQtJySXOAtcD6qjrrgevT9lXAUxGjrwktqUPS6Wm7E/g88Gq9B282qcotjRxTbt09ZQU17uypiBiSdCPwONAO3BMRmyXdCvRGxHrgbuA+SX3AR2TBAoCkd4BTgDmSrgQuB94FHk+B0Q48AfxFU8/MrNnKYxo5ptz6jnArqHFDAyAiNgAbqspuqdg+Alw9ynuXjbLbC/Mdotk04ZaGme8IN8utrim3bmlYMTk0zPKqq3vKLQ0rJoeGWV51dU957SkrJoeGWV6ecmvm0DDLrY6b+wY65jCsNhgczB5mBeHQMMurjmVEkEZaGwcPtvCgzCaXQ8MsrzpaGuAZVFZMDg2zvOoY0wCvP2XF5NAwy6v0I0w5Q8Mr3VoROTTM8ogY6Z7KcZ/GcfUcGlYgDg2zPA4fhggOd3Qx3Nae6y0e07AicmiY5VHHT72WuKVhReTQMMujNJ6Rs2sK3NKwYnJomOVRx2KFJW5pWBE5NMzyaCA03NKwInJomOXRQPdU+SZAL1poBeLQMMujkZaGu6esgBwaZnk0Mqbh7ikrIIeGWR6NzJ5yS8MKyKFhlkdphVsPhNss59AwyyOFRt7FCsGhYcXk0DDLo4GWxiEvWGgF5NAwy6PU0ug6Kfdbyj/W5NCwAnFomOXRQPeUWxpWRA4NszwaGQh3S8MKyKFhlkcDoXGkcw7HULas+vBwq47MbFI5NMzyaKB7KtQ20kV18GArjsps0jk0zPIotzTyD4RDxc2AXn/KCsKhYZZHAy0N8O+EW/HkCg1JqyVtkdQn6aYar3dJeiC9/rykZal8kaSnJR2Q9O2q91wo6ZX0njskqRknZNZ0EQ2NaQAc8mC4Fcy4oSGpHbgTuAJYCVwjaWVVtRuA3RFxLnA7cFsqPwJ8Dfh3NXb9HeCPgBXpsbqREzBruSNHYHiYgfZOhto76nqrWxpWNHlaGhcBfRGxNSIGgfuBNVV11gD3pu2HgEslKSIORsTfkoVHmaTFwCkR8VxEBPB94MqJnIhZy+zbB9TfNQVeSsSKJ09onA1sq3jen8pq1omIIWAvsGicffaPs08AJK2T1Cupd+fOnTkO16zJGuyaAt+rYcUz7QfCI+KuiFgVEat6enqm+nBsNppAaPiucCuaPKGxHTin4vmSVFazjqQOYAGwa5x9Lhlnn2bTQ3nmVH3TbcHdU1Y8eUJjI7BC0nJJc4C1wPqqOuuB69P2VcBTaayipoh4D9gn6eI0a+o64JG6j95sMkykpeEfYrKCGXcqSEQMSboReBxoB+6JiM2SbgV6I2I9cDdwn6Q+4COyYAFA0jvAKcAcSVcCl0fEa8AfA38JzAV+mh5m008DK9yWuKVhRZNr/mBEbAA2VJXdUrF9BLh6lPcuG6W8Fzg/74GaTZkGb+wDtzSseKb9QLjZlJvI7Kk5XkbEisWhYTaeCbQ0ymtVpXs9zGY6h4bZeCbQ0tjXNS/b2Lu3mUdkNmUcGmbjmUBo7C8Nnjs0rCAcGmbjmUD31H63NKxgHBpm42nwtzTAoWHF49AwG08axG5sTKOie2r0+13NZgyHhtl4Umjsb+DmvoGOOQy2dcDgYLbEutkM59AwG0/qWirPhKqH5MFwKxSHhtl49uwBYF93A6FR+T6HhhWAQ8NsLBHlf+wbWeUWPBhuxeLQMBvLgQNw7BgHO7vr/qnXEndPWZE4NMzGkv6hb2QQvMQtDSsSh4bZWErjGV3zG97F/jkODSsOh4bZWJrS0nD3lBWHQ8NsLBOcOQUV3VNpX2YzmUPDbCzlezQa757ylFsrEoeG2VhS62Ai3VP73D1lBeLQMBtLM7unHBpWAA4Ns7GUB8IdGmbg0DAbW3nK7URCw91TVhwODbOxTGSxwsQtDSsSh4bZWMoD4W5pmIFDw2xsTWhplKfr7tnjH2KyGc+hYTaWXbsA2DP35IZ3MdjRyaHOLhgayhZANJvBHBpmY0mhsXsCoQGwu/uU4/ZnNlM5NMxGMzwMu3dzDLG3u/E7wqGipfLhh004MLOp49AwG83u3RDBvu55HGtrn9iuSqHhlobNcA4Ns9E0qWsKYM9cd09ZMeQKDUmrJW2R1Cfpphqvd0l6IL3+vKRlFa/dnMq3SPpcRfk7kl6R9LKk3macjFlTlQbBS+MRE+CWhhXFuL9fKakduBO4DOgHNkpaHxGvVVS7AdgdEedKWgvcBvyhpJXAWuA84CzgCUmfiIjh9L7fiQh38tr01MSWxu5uh4YVQ56WxkVAX0RsjYhB4H5gTVWdNcC9afsh4FJJSuX3R8RARLwN9KX9mU1/7p4yO0Ge0Dgb2FbxvD+V1awTEUPAXmDROO8N4P9IekHSuvoP3azFyvdouHvKrGTc7qkW+o2I2C7pDOBvJL0REf+3ulIKlHUAS5cunexjtNmsmd1TDg0riDwtje3AORXPl6SymnUkdQALgF1jvTciSn93AA8zSrdVRNwVEasiYlVPT0+OwzVrkia2NNw9ZUWRJzQ2AiskLZc0h2xge31VnfXA9Wn7KuCpiIhUvjbNrloOrAB+LmmepJMBJM0DLgdenfjpmDVRqaXR7ZaGWcm43VMRMSTpRuBxoB24JyI2S7oV6I2I9cDdwH2S+oCPyIKFVO9B4DVgCPhSRAxLOhN4OBsrpwP4QUQ81oLzM2tcU7un3NKwYsg1phERG4ANVWW3VGwfAa4e5b3fBL5ZVbYV+GS9B2s2qXbsAOCjkxZMeFf7u07iaFs7nfv3w+HDMHfuhPdpNhV8R7jZaN5/H4Ad80+b8K5Cbeycd2r25IMPJrw/s6ni0DCrZWAAPvqIo23tTemeAkZC4733mrI/s6ng0DCrJbUyPjxpIaHm/GeyY/6px+3bbCZyaJjVkv5h31n6h74J3NKwInBomNWS/mHfMa+ZoZHGRtzSsBnMoWFWS6ml0czQmO+Whs18Dg2zWkotjSbMnCopt1rc0rAZzKFhVksrWhoe07ACcGiY1ZL+YW/mQHi51eKWhs1gDg2zWsoD4c3rntpZ2T01PDx2ZbNpyqFhVsu77wKw/ZTmraw82NGZjWsMD8P26oWizWYGh4ZZtUOHYOdOBto7mto9BbBtwZnZxttvN3W/ZpPFoWFWLbUyfnlKT9PuBi/ZttChYTObQ8OsWrlr6oym73rbgo9lGw4Nm6EcGmbV3nkHgP5SV1ITuXvKZjqHhlm1vj6g4h/4JnL3lM10Dg2zalu2ALD1tLObvmu3NGymc2iYVSuFxqIlTd/1e6f0cLStPZtye+BA0/dv1moODbNKg4OwdSvHEO8sXNz03Q+3tdO36JzsyebNTd+/Was5NMwqvfkmDA/Tv+AMBjq7WvIRr5+xPNv4xS9asn+zVnJomFV66SUAXjvz4y37iDd6lmUbmza17DPMWsWhYVYphcbmM1oXGm5p2Ezm0DCr9MILAGw+8x+37CPe6EmhsWkTHDvWss8xawWHhlnJwAD8/OcA/GLxJ1r2MTvnn8r2k3tg3z4PhtuM49AwK9m4EQ4f5u8XLWXXvIUt/ajnlp4PwNe/emdLP8es2RwaZiVPPAHAc0svaPlHlT7jkrdfbPlnmTWTQ8Os5Ic/BODJcy9q+Uf97OOf5hjikndezrqpzGYIh4YZZDOZXn2VvV3z+H//6J+1/ON2zj+VjeecR9fw0XJYmc0EDg0zgG99C4Afnf9ZjrZ3TspHPnjBZdnG7bd7FpXNGLlCQ9JqSVsk9Um6qcbrXZIeSK8/L2lZxWs3p/Itkj6Xd59mk2XNdd+C++6Djg6+d+EXJu1zf/wrv8n780+DV16B73530j7XbCLGDQ1J7cCdwBXASuAaSSurqt0A7I6Ic4HbgdvSe1cCa4HzgNXAf5fUnnOfZq23aRP/4+H/DBHwla/wD6c2f72p0Qx2dPLN37khe/LlL8Mjj0zaZ5s1qiNHnYuAvojYCiDpfmAN8FpFnTXAf0zbDwHflqRUfn9EDABvS+pL+yPHPk906BD09h5fFlG77lSUT6djGa18Oh3LaOWt/syBgezX+Z59lqGH/5rFcQwuuYRPxK/Xrt9CP/6V3+TT/a9x3UuPwpVXwm/9Flx+OV9+bg933Pi70N0N7e3Q1jbyV5r04zQryRMaZwPbKp73A/98tDoRMSRpL7AolT9X9d7SjxSMt88Tvf46fPrTOQ7ZLCe18T8/dQX/4rGHGLz16Sn4fHHLZf+Gdxd+jD999gfMf+YZeOYZ7gD48X+Z/OMxG0ee0JhSktYB69LTAcGrU3k808jpwIdTfRDTROPfRRyDl3/KF+fNa+4R1emW9GgCXxcj/F2M+CfN2lGe0NgOnFPxfEkqq1WnX1IHsADYNc57x9snABFxF3AXgKTeiFiV45gLz9/FCH8XI/xdjPB3MUJS7/i18skze2ojsELScklzyAa211fVWQ9cn7avAp6KiEjla9PsquXACuDnOfdpZmbTzLgtjTRGcSPwONAO3BMRmyXdCvRGxHrgbuC+NND9EVkIkOo9SDbAPQR8KSKGAWrts/mnZ2ZmzaQYbYbJNCRpXequmvX8XYzwdzHC38UIfxcjmvldzKjQMDOzqeVlRMzMLLcZERqzbckRSedIelrSa5I2S/qTVH6apL+R9Gb6e2oql6Q70vezSdKvTe0ZNF9aSeAlST9Jz5enJWv60hI2c1L5qEvaFIGkhZIekvSGpNclfWa2XheS/jT99/GqpL+S1D1brgtJ90jaIenVirK6rwNJ16f6b0q6vtZnVZv2oTFLlxwZAv5tRKwELga+lM75JuDJiFgBPJmeQ/bdrEiPdcB3Jv+QW+5PgNcrnt8G3J6WrtlNtpQNjLKkTYH8GfBYRPxT4JNk38msuy4knQ18GVgVEeeTTahZy+y5Lv6SbGmmSnVdB5JOA75OdmP1RcDXS0EzpoiY1g/gM8DjFc9vBm6e6uOa5O/gEeAyYAuwOJUtBrak7T8HrqmoX65XhAfZfTxPAp8FfgKI7KatjuprhGxG3mfSdkeqp6k+hyZ9DwuAt6vPZzZeF4ysQnFa+t/5J8DnZtN1ASwDXm30OgCuAf68ovy4eqM9pn1Lg9rLmJw9St3CSc3oXwWeB86MiPfSS+8DZ6bton9H/w3490Bp/fBFwJ6IGErPK8/3uCVtgNKSNkWwHNgJfC911X1X0jxm4XUREduB/wr8A/Ae2f/OLzA7r4uSeq+Dhq6PmRAas5ak+cAPga9ExHE/7xbZ/zUo/NQ3SZ8HdkTEC1N9LNNAB/BrwHci4leBg4x0QQCz6ro4lWyR0+XAWcA8TuyumbVaeR3MhNDIs4xJ4UjqJAuM/xURP0rFH0hanF5fDOxI5UX+jn4d+IKkd4D7ybqo/gxYqGzJGjj+fMvfhY5f0qYI+oH+iHg+PX+ILERm43Xxu8DbEbEzIo4CPyK7VmbjdVFS73XQ0PUxE0Jj1i05Iklkd9m/HhHfqnipcrmW68nGOkrl16VZEhcDeyuaqTNaRNwcEUsiYhnZ//ZPRcS1wNNkS9bAid9FrSVtZryIeB/YJqm0+NylZKstzLrrgqxb6mJJJ6X/Xkrfxay7LirUex08Dlwu6dTUcrs8lY1tqgdzcg74/B7w98BbwH+Y6uOZhPP9DbKm5Sbg5fT4PbI+2CeBN4EngNNSfZHNMHsLeIVsRsmUn0cLvpffBn6Stj9Oto5ZH/C/ga5U3p2e96XXPz7Vx93k7+BTQG+6Nv4aOHW2XhfAfwLeIFv5+j6ga7ZcF8BfkY3lHCVrgd7QyHUA/Kv0nfQB/zLPZ/uOcDMzy20mdE+Zmdk04dAwM7PcHBpmZpabQ8PMzHJzaJiZWW4ODTMzy82hYWZmuTk0zMwst/8Pt9/xLWYF1sAAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x106800850>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(distances, bins=range(1001), density=True)\n",
    "plt.plot(x, y, 'r', linewidth=2.0)\n",
    "plt.xlim(0, 1000)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1068f3dd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(distances, bins=range(1001), density=True)\n",
    "plt.plot(x, y, 'r', linewidth=2.0)\n",
    "plt.xlim(400, 600)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
